package sao.bd;

import java.sql.*;

public class BD {

	//private String URLConexao;
	private Connection con;
	private Statement stmt;
	private ResultSet rs;
	
	
	public BD() throws ClassNotFoundException, SQLException {
		// Create a variable for the connection string.
		String connectionUrl = "jdbc:sqlserver://10.10.10.12:1433;"
				+ "databaseName=SAO;user=sa;password=senha";

		// Declare the JDBC objects.
		con = null;
		stmt = null;
		rs = null;

		// Establish the connection.
		/*
		 * Driver do SQL SERVER */
		 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
		 con = DriverManager.getConnection(connectionUrl);
		 
		/*
		 * Driver do MySQL
		 * Class.forName("com.mysql.jdbc.Driver").newInstance(); 
		 * con = DriverManager.getConnection("jdbc:mysql://localhost:3306/SAO", "root",
				"230997we"); 
		 */
			
	}//FIM Construtor BD
	
	
	/**
	 * Executa consultas SQL que retornam objeto ResultSet, tal como a consulta SELECT
	 * @param sql - Uma string com a consulta SQL
	 * @return Um ResultSet
	 * @throws SQLException - Levanta esta exceção em caso de erro retornado pelo banco
	 */
	public ResultSet executarStatement(String sql) throws SQLException {
		stmt = con.createStatement();
		rs = stmt.executeQuery(sql);
		return this.rs;
	}//FIM método executarStatement
	
	
	/**
	 * Executa consultas SQL que não retornam conjuntos de dados, ou seja,
	 * consultas do tipo INSERT, UPDATE e DELETE
	 * @param sql - String com a consulta a ser efetuada
	 * @return Um valor inteiro representando o número de linhas afetadas pela consulta
	 * @throws SQLException Levanta exceção em caso de erro no banco
	 */
	public int executarUpdate(String sql) throws SQLException{
		stmt = con.createStatement();
		return stmt.executeUpdate(sql);
	}
	
	
	/**
	 * Fecha os recursos abertos (ResultSet, Statement e Connection)
	 */
	public void fechar(){
		try {
			this.rs.close();
			this.stmt.close();
			this.con.close();
		} catch (SQLException e) {
			System.out.println(e.getMessage());
			e.printStackTrace();
		}
	}//FIM método fechar


	/**
	 * Seta a URL da conexão com os dados do contexto da aplicação
	 * @param app - Um objeto ServletContext
	 */
	/*
	private void setURLConexao(ServletContext app) {
		String host = app.getInitParameter("dbHost");
		String porta = app.getInitParameter("dbPorta");
		String base = app.getInitParameter("dbNome");
		String usuario = app.getInitParameter("dbUsuario");
		String senha = app.getInitParameter("dbSenha");
		this.URLConexao = "jdbc:sqlserver://" + host 
			+ ":" + porta + ";" + "databaseName=" 
			+ base + ";user="+usuario+";password="+senha;
	}//FIM método getURLConexao
	*/
	
	
	
}//FIM classe BD